package com.zxl.designpattern.behavioral.interpreter;

/**
 * 变量表达式类（终结符表达式）
 * 表示一个变量，实现了Expression接口
 * 不可再分：它直接表示一个变量（如a、b），没有子表达式。
 * 直接解释：通过Context获取变量的具体值，是解释过程的终点。
 * 基础操作：对应语法中的变量符号，是表达式的最小组成单元。
 */
public class VariableExpression implements IExpression {
    private String variableName;  // 变量名
    
    /**
     * 构造函数，初始化变量名
     * @param variableName 变量名
     */
    public VariableExpression(String variableName) {
        this.variableName = variableName;
    }
    
    @Override
    public int interpret(Context context) {
        return context.getValue(variableName);
    }
}    